Method and system for mapping content between a starting template and a target template

ABSTRACT

Methods and systems are provided for mapping content from a first or starting template to a second or target template. An analysis is performed of any content objects and content placeholders contained in the starting and target templates. One or more potential content mappings are generated for potentially mapping content objects from the starting template to the target template. An optimal mapping is selected from the potential mappings, and content objects from the starting template are mapped to the target template according to the selected optimal mapping.

FIELD OF THE INVENTION

The present invention generally relates to presentation of content in acomputer-generated template. More particularly, the present inventionrelates to mapping content between a starting template and a targettemplate.

BACKGROUND OF THE INVENTION

With the advent of the computer age, computer and software users havegrown accustomed to user-friendly software applications that help themwrite, calculate, organize, prepare presentations, send and receiveelectronic mail, make music, and the like. Modem word processingapplications, for example, allow users to create and edit a variety ofuseful documents. Modem desktop publishing applications, for anotherexample, allow users to create a variety of useful documents andpresentations such as newspapers, newsletters, brochures, advertisementlayouts, stationery, and the like.

Some software applications, such as word processing applications anddesktop publishing applications allow users to use pre-defined templates(templates) to prepare new templates. For example, a template may beprovided by a word processing application for preparing a resumetemplate, and the template may have placeholders or text boxes forreceiving certain types and amounts of information such as a user'spersonal data and employment history. Another example template may beprovided by a desktop publishing application for preparing a newsletter,and the template may have placeholders or text boxes for headlines,pictures, stories, etc. Often users add or edit content to or in a firstor starting template, but later decide to copy the content added to oredited in the first template to a different template. For example, auser may add content to or edit content in a newspaper-style templatehaving placeholders for content arranged in long, narrow columns. Later,the user may desire to map the content from the newspaper-style templateto a newsletter-style template having placeholders for content arrangedaccording to a different structure.

Some prior systems require users to copy and paste content(piece-by-piece) from a starting template into a target template. Otherprior systems allow for placeholders in different templates to be taggedfor identification so that content from a starting template may beautomatically copied to matching placeholders in a target template.However, such systems do not support user-inserted content (notconforming to a tagging scheme of the template) or content intended forone use that is inserted into a placeholder in a second templateintended for another use, for example, story text entered into aheadline placeholder in an article template.

Accordingly, there is a need for a method and system for improvedmapping of content from a first or starting template to a targettemplate. It is with respect to these and other considerations that thepresent invention has been made.

SUMMARY OF THE INVENTION

Embodiments of the present invention solve the above and other problemsby providing methods and systems for mapping content from a startingtemplate or document to a target template or document. According to anaspect of the invention, a first or starting template is received havingone or more content placeholders and having user-inserted content in oneor more of the content placeholders. A second or target template isreceived having one or more content placeholders. Upon an instruction ordecision to populate the target template with user-inserted content fromthe starting template, the content placeholders and any user-insertedcontent are analyzed for both the starting and target templates todetermine the nature of the content placeholders and user-insertedcontent associated with each template. A list of possible contentmappings between the content of the starting template and the contentplaceholders of the target template is generated. An optimal contentmapping is determined from the list of content mappings. After theoptimal content mapping is determined, content from the startingtemplate is mapped to the target template.

According to other aspects of the invention, analysis of the startingand target templates includes generation and analysis of a contentschematic for each template. The content schematic includes a list ofobject properties that includes data associated with each content objectand content placeholder contained in each template. For example, objectproperties may include the length of a text selection, the font size ofa text selection, the size of an image, the location of a content objector placeholder, and the like. The content schematic also includes aproximity graph that represents physical arrangement of objects (contentand placeholders) in the templates, for example, including whether oneobject is adjacent to or nearby another object in a given template. Thecontent schematic also includes a relationship tree that illustrates thecontextual relationships between objects, for example, whether a givencaption is related to a given image.

Generation of the list of mappings includes analysis of the componentsof the content schematics to determine potential mappings of contentobjects from the starting template to placeholders in the targettemplate that best fit the nature of and physical and contextualrelationships between content objects and placeholders contained in thestarting template. The optimal content mapping is determined by scoringeach of the potential mappings based on how closely each potentialmapping to the target template approximates the starting template. Thecontent mapping with the best score is selected for final mapping ofcontent from the starting template to the target template.

If one or more content objects may not be mapped to the target template,for example, where the target template does not contain sufficient spacefor one or more content objects from the starting template, the one ormore content objects may be stored. A user interface may be provided toa user of the templates to allow the user to manually insert all or aportion of the one or more content objects into the target template asdesired.

These and other features and advantages, which characterize the presentinvention, will be apparent from a reading of the following detaileddescription and a review of the associated drawings. It is to beunderstood that both the foregoing general description and the followingdetailed description are exemplary and explanatory only and are notrestrictive of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary computing operating environment forembodiments of the present invention.

FIG. 2 is a simplified block diagram illustrating the mapping of contentobjects and content placeholders from a starting template to contentplaceholders of a target template.

FIG. 3 is a simplified block diagram illustrating the mapping of contentobjects from a starting template to content placeholders of a targettemplate.

FIG. 4 is a simplified block diagram illustrating content schematics forstarting and target templates for mapping content between a startingtemplate and a target template according to embodiments of the presentinvention.

FIG. 5 is a flow diagram showing an illustrative routine for mappingcontent from a starting template to content placeholders in a targettemplate according to embodiments of the present invention.

FIGS. 6 and 7 illustrate computer screen shots showing mapping ofcontent from a starting template to a target template according to anactual implementation of an embodiment of the present invention.

DETAILED DESCRIPTION

As briefly described above, embodiments of the present invention aredirected to methods and systems for mapping content from a first orstarting template to a second or target template. According toembodiments of the present invention, an analysis is performed of anycontent objects and content placeholders contained in the starting andtarget templates. One or more potential content mappings are generatedfor potentially mapping content objects from the starting template tothe target template. An optimal mapping is selected from the potentialmappings, and content objects from the starting template are mapped tothe target template according to the selected optimal mapping.

In the following detailed description, references are made to theaccompanying drawings that form a part hereof, and in which are shown byway of illustrations specific embodiments or examples. These embodimentsmay be combined, other embodiments may be utilized, and structuralchanges may be made without departing from the spirit or scope of thepresent invention. The following detailed description is therefore notto be taken in a limiting sense and the scope of the present inventionis defined by the appended claims and their equivalents.

Referring now to the drawings, in which like numerals represent likeelements through the several figures, aspects of the present inventionand the exemplary operating environment will be described. FIG. 1 andthe following discussion are intended to provide a brief, generaldescription of a suitable computing environment in which the inventionmay be implemented. While the invention will be described in the generalcontext of program modules that execute in conjunction with anapplication program that runs on an operating system on a personalcomputer, those skilled in the art will recognize that the invention mayalso be implemented in combination with other program modules.

Generally, program modules include routines, programs, components, datastructures, and other types of structures that perform particular tasksor implement particular abstract data types. Moreover, those skilled inthe art will appreciate that the invention may be practiced with othercomputer system configurations, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and the like. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

Turning now to FIG. 1, an illustrative computer architecture for apersonal computer 2 for practicing the various embodiments of theinvention will be described. The computer architecture shown in FIG. 1illustrates a conventional personal computer, including a centralprocessing unit 4 (“CPU”), a system memory 6, including a random accessmemory 8 (“RAM”) and a read-only memory (“ROM”) 10, and a system bus 12that couples the memory to the CPU 4. A basic input/output systemcontaining the basic routines that help to transfer information betweenelements within the computer, such as during startup, is stored in theROM 10. The personal computer 2 further includes a mass storage device14 for storing an operating system 16, application programs, such as theapplication program 205, and data.

The mass storage device 14 is connected to the CPU 4 through a massstorage controller (not shown) connected to the bus 12. The mass storagedevice 14 and its associated computer-readable media, providenon-volatile storage for the personal computer 2. Although thedescription of computer-readable media contained herein refers to a massstorage device, such as a hard disk or CD-ROM drive, it should beappreciated by those skilled in the art that computer-readable media canbe any available media that can be accessed by the personal computer 2.

By way of example, and not limitation, computer-readable media maycomprise computer storage media and communication media. Computerstorage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules or other data. Computer storage media includes, but isnot limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solidstate memory technology, CD-ROM, DVD, or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by the computer.

According to various embodiments of the invention, the personal computer2 may operate in a networked environment using logical connections toremote computers through a TCP/IP network 18, such as the Internet. Thepersonal computer 2 may connect to the TCP/IP network 18 through anetwork interface unit 20 connected to the bus 12. It should beappreciated that the network interface unit 20 may also be utilized toconnect to other types of networks and remote computer systems. Thepersonal computer 2 may also include an input/output controller 22 forreceiving and processing input from a number of devices, including akeyboard or mouse (not shown). Similarly, an input/output controller 22may provide output to a display screen, a printer, or other type ofoutput device.

As mentioned briefly above, a number of program modules and data filesmay be stored in the mass storage device 14 and RAM 8 of the personalcomputer 2, including an operating system 16 suitable for controllingthe operation of a networked personal computer, such as the WINDOWSoperating systems from Microsoft Corporation of Redmond, Wash. The massstorage device 14 and RAM 8 may also store one or more applicationprograms. In particular, the mass storage device 14 and RAM 8 may storean application program 105 for providing a variety of functionalities toa user. For instance, the application program 105 may comprise manytypes of programs such as a word processing application program, aspreadsheet application, a desktop publishing application, a databaseapplication and the like.

According to an embodiment of the present invention, the word processingapplication 125 and the desktop publishing application 130 containsufficient computer-executable instructions for mapping content from astarting document template to a target document template as describedbelow. An example word processing application 125 for use in accordancewith the present invention is WORD manufactured by MicrosoftCorporation. An example desktop publishing application 130 for use inaccordance with the present invention is PUBLISHER manufactured byMicrosoft Corporation. As should be appreciated, the present inventionmay be operated by a variety of different software applications capableof creating and displaying documents with content placeholders forreceiving user-inserted or mapped content.

FIG. 2 is a simplified block diagram illustrating the mapping of contentobjects from a starting template to content placeholders of a targettemplate. The starting template 210 is illustrative of a first templatefrom which user-inserted content is automatically mapped according toembodiments of the present invention into a second or target template250. The term template is used herein to indicate a computer-generateddocument into which a user may insert content (text, images, data, etc.)and with which the user may edit content and content placeholders.Content placeholders refer to portions of the template/documentpre-defined and/or pre-formatted for receiving content (e.g., textboxes). Content placeholders may have applied properties such as textfonts, text/image size limitations, and the like.

As described in detail below, according to embodiments of the presentinvention, when a user desires to map and populate user-inserted contentfrom a starting template 210 into a different target template 250, ananalysis of each of the two templates is performed, and an optimalcontent mapping is determined for mapping user-inserted content from thestarting template 210 into the target template 250. For purposes ofexample only, embodiments of the present invention are described hereinin terms of mapping user-inserted content from a newspaper columntemplate 210 to a newsletter template 250. It should be understood tothose skilled in the art that embodiments of the present invention maybe utilized for mapping a variety of content objects from any number ofstarting templates to any number of target templates as describedherein.

The starting template 210 may be prepared by a number of softwareapplications including a word processing application, a desktoppublishing application, and the like. An exemplary word processingapplication for preparing the starting template 210 and the targettemplate 250, illustrated in FIG. 2, is WORD, manufactured by MicrosoftCorporation, Redmond, Wash. An exemplary desktop publishing applicationfor preparing the templates 210, 250, illustrated in FIG. 2, includesPUBLISHER manufactured by Microsoft Corporation of Redmond, Wash.According to embodiments of the present invention, the starting template210 and the target template 250 may comprise document templates createdby a user, or downloaded by a user from a template library provided bythe user's word processing or desktop publishing application.

Referring to the starting template 210, a first content placeholder 215is illustrated having user-inserted text. For example, the user-insertedtext may include a headline for a newspaper article. A second contentplaceholder 220 is illustrated for containing a picture or image. Athird content placeholder 225 is illustrated beneath the pictureplaceholder 220 for containing a caption. Content placeholders 230, 235,240 positioned, respectively, underneath the caption placeholder 225 areillustrated for containing user-entered text, for example, stories for anewspaper column. As should be understood by those skilled in the art,the particular content placeholders and user-inserted text or imagesillustrated in FIG. 2 are for purposes of example only and are notlimiting of the invention as claimed herein.

The target template 250 illustrates the mapping of user-inserted contentfrom the starting template 210 into content placeholders contained inthe target template 250. For example, as illustrated in FIG. 2, a firstcontent placeholder 255 in the target template 250 receives content fromthe content placeholder 215 of the starting template 210. The contentplaceholder 260 in the target template 255 receives content mapped fromthe content placeholder 220 in the starting template. A third contentplaceholder 270 of the target template receives content mapped from thecontent placeholder 225 of the starting template, and so on. As will bedescribed in detail below, a user desiring to map content entered into astarting template, for example a newspaper column-style template, overto a target template, for example a newsletter-style template, mayautomatically map user-inserted content from the starting template tothe target template without the need to copy and paste content fromindividual placeholders in the starting template to correspondingplaceholders in the target template.

FIG. 3 is a simplified block diagram illustrating a process of mappingcontent objects from a starting template to content placeholders of atarget template according to embodiments of the present invention. Whena user of a starting template 210, having content placeholders 205 andassociated user-inserted content, desires to have the content mapped toa target template 250 having content placeholders 208, an analysis ofboth the starting template 205 and the target template 250 is performedto create a content schematic 310 for the starting template 205 and acontent schematic 320 for the target template 250. As described belowwith reference to FIG. 4, the content schematics 310, 320 for each ofthe starting and target templates 210, 250 include information abouteach of the separate templates from which one or more possible contentmappings 340 may be prepared. By analysis of each of the starting andtarget templates to determine the nature of content contained therein,the physical relationships between individual content objects containedtherein, and any contextual relationships between individual contentobjects contained therein (for example, a caption displayed underneathan associated picture), one or more potential content mappings may beprepared for mapping content from the starting template to the targettemplate 250.

As described below, each potential content mapping is scored based onhow well the content is mapped from the first or starting template tothe second or target template according to the given content mapping.The content mapping having the best mapping score is selected as anoptimal mapping 350. Content from the starting template 210 is thenmapped to the target template 250 according to the selected optimalmapping 350.

FIG. 4 is a simplified block diagram illustrating content schematics forstarting and target templates according to embodiments of the presentinvention. As described above with reference to FIG. 3, during theanalysis of each of the first and second templates 210, 250 forgeneration of one or more potential mappings of content from the firsttemplate to content placeholders in the second template, a contentschematic is constructed for each of the first and second templates.Each of the content schematics 310, 320 for the starting template 210and target template 250 includes a list of object properties 410, 440, aproximity graph 420, 450 and a relationship tree 430, 460.

The list of object properties 410, 440 prepared for the contentschematics for each of the two templates includes information regardingindividual content objects or content placeholders contained in each ofthe templates. For example, for a given content object, such as a textselection entered by a user, the list of object properties may includethe size of the text selection, the length of the text selection, thefont with which the text selection is entered and displayed, a locationrange within the template for the text selection, and the like. Otherobject properties include special formatting properties applied to thecontent object including formatting associated with computing languagessuch as the Extensible Markup Language. For any content placeholders ineither of the two templates, which do not contain any user-insertedcontent, the list of object properties may nonetheless containinformation such as predefined font properties associated with thecontent placeholders, size limitations associated with text or imagesthat may be inserted into the placeholders, and the like.

The proximity graphs 420, 450 generated for each of the starting andtarget templates 210, 250 represent the physical relationships betweencontent objects or content placeholders included in the respectivetemplates. For example, referring to the proximity graph 420, andreferring to the starting template 210, illustrated in FIG. 2, theproximity graph 420 illustrates that each of the content placeholders215-240 and the associated user-inserted content are physicallypositioned in a vertical orientation with each successive contentplaceholder positioned below the immediately preceding contentplaceholder. Referring to the proximity graph 450 for the targettemplate 250, the proximity graph illustrates that the placeholder 260is positioned beneath the placeholder 255 and that the placeholder 265is positioned to the right of the placeholder 260. Additionally, theproximity graph 450 illustrates that the content placeholder 270 ispositioned beneath the placeholder 260 and that the placeholders 275 and280 are positioned in side-by-side orientation beneath the placeholder270.

Referring still to FIG. 4, the relationship trees 430, 460 for thecontent schematics 310, 320 illustrate functional and/or contextualrelationships between content objects and/or content placeholders in therespective templates 210, 250. As illustrated in FIG. 2, the headlineplaceholder 215 for the starting template 210 is a parent of the pictureplaceholder 220 and the story placeholders 230, 235, 240. The captionplaceholder 225 is illustrated as having a child relationship to thepicture placeholder 220. The illustrated relationship between thepicture placeholder 220 and the caption placeholder 225 indicates thatthe caption placeholder 225 belongs with the picture placeholder 220. Asdescribed below, during the generation of potential mappings of contentfrom the first template to the second template, the relationship betweenthe parent picture placeholder 220 and the child caption placeholder 225will be maintained, if possible, when associated data is mapped to thesecond template according to embodiments of the present invention.

The relationship tree 460 for the target template shows a samerelationship between content objects in the target template as therelationship tree 430 shows for the starting template. However, asshould be understood by those skilled in the art, if the target template250 does not contain content and/or content placeholders correspondingto content and/or content placeholders contained in the startingtemplate, the relationship tree 460 for the target template may besignificantly different than the relationship tree 430 for the startingtemplate. For example, if the target template 250 does not have aplaceholder 270 into which content from the caption placeholder may bemapped, the relationship tree 460 may not show a node for the captionplaceholder as a child of the picture placeholder.

After the content schematics for each of the starting and targettemplates are prepared, one or more potential mappings are generated. Ina first instance, an attempt is made to match content objects from thestarting template 210 to content placeholders in the target template 250based on object properties associated with individual content objectsand listed in the list of object properties 410, 440. For example, atext object is mapped to a text placeholder, an image object is mappedto an image placeholder, and so on. Using other object properties, acontent object of a certain size may be mapped to a content placeholderof a similar size. If a content object is entered according to aspecific font, it may be mapped to a content placeholder formatted withthe same font.

After utilization of the object properties for the content objects andcontent placeholders for each of the templates, the proximity graphs420, 450 may next be used for generating the potential mappings. Forexample, if a particular content object (e.g., the picture object 220)is positioned immediately beneath another particular content object(e.g., the headline object 215), an attempt is made to map the twocontent objects to placeholders in the target template such that thephysical relationship is maintained.

Next, the relationship trees 430, 460 for each of the two templates maybe used to determine optimal mapping of content objects from thestarting template to the target template. For example if both thepicture object 220 and the associated caption object 225 in the startingtemplate are to be mapped to the target template, then an attempt ismade to maintain the contextual relationship (parent/child) betweenthose content objects as shown in the relationship tree 430. Otherwise,an undesirable result may be reached where a caption prepared for apicture is mapped to a location in the target template unrelated to theassociated picture.

Once the list of potential mappings is prepared based on the informationgenerated and stored in the content schematics, a cost analysis orscoring (optimization analysis) of the individual potential mappings isperformed. The higher the score or the lower the cost, the more likelythe mapping is an optimal mapping. For example, a mapping that fails tomap one or more content objects from the starting template to the targettemplate may receive a low score or high cost. For another example, amapping that fails to maintain a contextual relationship (e.g., captionwith picture) may receive a medium score or cost. For another example, amapping that maps all content and maintains proximity and contextualrelationships between content objects, but places a content object in anoversized content placeholder may receive a relatively high score or lowcost. Thus, as the optimization process is performed, the mapping withthe high score or low cost will be selected as the optimal mapping.

Having described an exemplary operating environment and components ofthe present invention above, it is advantageous to describe embodimentsof the present invention below in terms of an example operation of theinvention. For purposes of example, operation of embodiments of thepresent invention will be described in terms of the example startingtemplate and the example target template illustrated in FIG. 2. FIG. 5is a flow diagram showing an illustrative routine for mapping contentfrom a starting template to content placeholders in a target templateaccording to embodiments of the present invention. The routine 500begins at start block 505 and proceeds to block 510 where a startingtemplate is received. As should be understood by those skilled in theart, the starting template may be a document template 210, asillustrated in FIG. 2, in which a user has inserted a variety of contentobjects such as text selections, images, captions, data and the like.The template 210 may include one or more content placeholders forinsertion of the content objects by the user.

At block 515, a target template is selected for mapping content objectsfrom the starting template into the target template. As described above,the target template may be a template having one or more placeholdersfor receiving content objects, or the target template may be a documenttemplate that has been previously populated with user-inserted text orimages. Mapping content objects from the starting template to the targettemplate in this case may have the effect of writing text or images fromthe starting template over certain content objects already populatedinto respective content placeholders contained in the target template.

At block 520, the software application responsible for preparation ofthe starting and target templates, for example a word processingapplication or desktop publishing application, prepares a contentschematic for the starting template 210. At block 525, the softwareapplication prepares a content schematic for the target template 250. Asdescribed above with reference to FIGS. 3 and 4, preparation of thecontent schematics for the starting and target templates includespreparation of a list of object properties for each of the twotemplates, preparation of proximity graphs for each of the twotemplates, and preparation of relationship trees for each of the twotemplates.

At block 530, the software application prepares one or more potentialmappings of content objects from the starting template 210 to the targettemplate 250. As described above with reference to FIGS. 3 and 4, theone or more potential mappings prepared at block 530 may includedifferent mappings of content objects from the starting template to thetarget template including different arrangements of content objects inthe target template. At block 535, an optimization analysis of thepotential mappings is performed to determine an optimal mapping from thestarting template to the target template. As described above withreference to FIG. 4, each potential mapping may be scored to determinehow well a given mapping approximates the original mapping of contentobjects in the starting template. At block 540, if an optimal mapping isdetermined, the routine proceeds to block 545, and content objects fromthe starting template 210 are populated into the target template 250according to the determined optimal mapping.

Alternatively, the generation of and optimization analysis of potentialmappings may be an iterative process. That is, at block 530, a firstpotential mapping may be generated followed by an optimization analysisof the first potential mapping. If the optimization analysis results ina low score or high cost associated with the potential mapping, asdescribed above with reference FIG. 4, the routine may proceed back to530, and a different potential mapping may be generated where certaincontent objects may be shifted to different positions in the potentialmapping, or certain content objects may be added while other contentobjects are omitted. An optimization analysis is then performed on thesecond potential mapping to determine whether an optimal mapping hasbeen reached. As should be understood by those skilled in the art, theiterative process may be performed for a set number of iterations, orthe iterative process may run for a defined period of time followed by aselection of the potential mapping with the highest score or lowest costprepared during the iterative process. Each potential mapping generatedmay be stored in a data structure of potential mappings so that theoptimal potential mapping may be selected at the conclusion of theiterative optimization process.

Returning back to block 545, as described above, once an optimal mappingfrom the starting template 210 to the target template is determined, thecontent objects, such as user-inserted text, images, and the like, arepopulated into the target template 250 according to the determinedoptimal mapping. If one or more content objects are not mapped to thetarget template 250, those content objects may be stored for subsequentuse. At block 550, a user interface may be provided to the user to alertthe user as to any content objects that have not been mapped to thetarget template 250 and to allow the user to manually edit the targettemplate 250 to insert one or more of those content objects into thetarget template. For example, if the target template 250 is not largeenough to receive all content objects from the starting template 210,certain content objects may not be mapped to the target template 250.Once the user learns of those content objects that have not been mappedto the target template 250, the user may decide that a preferablecontent mapping will include insertion of one of the omitted contentobjects in place of one of the mapped content objects. At block 555, thetarget template 250 is displayed for review by the user. Once the targettemplate is displayed, the user may then edit the target templateaccording to the functionality of the software application utilized bythe user for preparation of the target template 250.

Having described an example operation of the invention with reference toFIG. 5 above, FIGS. 6 and 7 illustrate computer screen shots showingmapping of content from a starting template to a target templateaccording to an actual implementation of an embodiment of the presentinvention. Referring to FIG. 6, the user interface 600 is illustrativeof a user interface provided by a desktop publishing application forpreparing a variety of documents. An example brochure document 610 isrepresentative of a template into which content objects have beenentered. An image object 620, a heading object 630 and a text object 640have each been entered into the document 610 as illustrated. Referringto FIG. 7, a user has selected a second or target document template fromthe user's desktop publishing application, and the content objects 620,630, 640 have been mapped to the target document 650 as described abovewith reference to FIG. 5. As shown in FIG. 7, the content objects haveall been mapped to the target document, but the arrangement of theobjects is different from the arrangement of the same objects in thestarting document 610. After the content objects are mapped to thetarget document 650, the user may then edit the target document 650, asdesired.

As described herein, improved methods and systems are provided formapping content from a starting template into a target template. It willbe apparent to those skilled in the art that various modifications orvariations may be made in the present invention without departing fromthe scope or spirit of the invention. Other embodiments of the presentinvention will be apparent to those skilled in the art fromconsideration of the specification and practice of the inventiondisclosed herein.

1. A method of mapping content from a starting template to a targettemplate comprising: analyzing the starting template to determinewhether any content objects are contained in the starting template andto determine any relationships between the any content objects containedin the starting template; analyzing the target template to determinewhether any content placeholders are contained in the target templateand to determine any relationships between the any content placeholderscontained in the target template; generating one or more contentmappings from the starting template to the target template for mappingthe any content objects contained in the starting template to the anycontent placeholders contained in the target template; and mapping theany content objects contained in the starting template to the anycontent placeholders contained in the target template according to amapping selected from the one or more content mappings.
 2. The method ofclaim 1, prior to mapping the any content objects contained in thestarting template to the any content placeholders contained in thestarting template, further comprising, determining which mapping of theone or more mappings is an optimal mapping for mapping the any contentobjects contained in the starting template to the any contentplaceholders contained in the target template; and selecting the optimalmapping from the one or more content mappings.
 3. The method of claim 2,whereby determining which mapping of the one or more mappings is anoptimal mapping includes determining which mapping of the one or moremappings maps the any content objects contained in the starting templateto the any content placeholders contained in the target template in amanner that most closely approximates the manner in which the anycontent objects are contained in the starting template.
 4. The method ofclaim 2, whereby determining which mapping of the one or more mappingsis an optimal mapping includes, determining one or more objectproperties associated with each of the any content objects contained inthe starting template and determining one or more object propertiesassociated with each of the any content placeholders contained in thetarget template; and whereby selecting the optimal mapping from the oneor more mappings includes selecting a mapping wherein individual contentobjects are mapped to corresponding content placeholders having objectproperties most closely approximating object properties associated withthe individual content objects.
 5. The method of claim 4, wherebydetermining which mapping of the one or more mappings is an optimalmapping further includes, determining physical relationships betweeneach of the any content objects contained in the starting template anddetermining physical relationships between each of the any contentplaceholders contained in the target template; and whereby selecting theoptimal mapping from the one or more mappings is further based onmapping content objects from the starting template to contentplaceholders in the target template such that the physical relationshipsbetween content objects in the starting template are maintained when thecontent objects are mapped to the target template.
 6. The method ofclaim 5, whereby determining which mapping of the one or more mappingsis an optimal mapping further includes, determining contextualrelationships between each of the any content objects contained in thestarting template and determining contextual relationships between eachof the any content placeholders contained in the target template; andwhereby selecting the optimal mapping from the one or more mappings isfurther based on mapping content objects from the starting template tocontent placeholders in the target template such that the contextualrelationships between content objects in the starting template aremaintained when the content objects are mapped to the target template.7. The method of claim 1, further comprising storing any content objectsnot mapped to the target template; and providing a user interface formanually inserting the any content objects not mapped to the targettemplate into the target template.
 8. The method of claim 1, furthercomprising displaying the target template after mapping the any contentobjects contained in the starting template to the any contentplaceholders contained in the target template according to a mappingselected from the one or more content mappings.
 9. A method of mappingcontent from a starting template to a target template comprising:analyzing the starting template to determine whether any content objectsare contained in the starting template; analyzing the target template todetermine whether any content placeholders are contained in the targettemplate; analyzing the any content objects and the any contentplaceholders to determine properties of the any content objects and theany content placeholders, to determine physical relationships betweenthe any content objects in the starting template and physicalrelationships between the any content placeholders in the targettemplate, and to determine any contextual relationships between the anycontent objects in the starting template and any contextualrelationships between the any content placeholders in the targettemplate generating one or more content mappings from the startingtemplate to the target template for mapping the any content objectscontained in the starting template to the any content placeholderscontained in the target template, wherein each of the one or morecontent mappings is generated based on matching properties of the anycontent objects to properties of the any content placeholders and basedon maintaining physical and contextual relationships between contentobjects in the starting template after the content objects are mapped tothe any content placeholders in the target template; and mapping the anycontent objects contained in the starting template to the any contentplaceholders contained in the target template according to a mappingselected from the one or more content mappings.
 10. The method of claim9, prior to mapping the any content objects contained in the startingtemplate to the any content placeholders contained in the startingtemplate, further comprising, determining which mapping of the one ormore mappings is an optimal mapping for mapping the any content objectscontained in the starting template to the any content placeholderscontained in the target template; and selecting the optimal mapping fromthe one or more content mappings.
 11. The method of claim 9, furthercomprising storing any content objects not mapped to the targettemplate; and providing a user interface for manually inserting the anycontent objects not mapped to the target template into the targettemplate.
 12. The method of claim 9, further comprising displaying thetarget template after mapping the any content objects contained in thestarting template to the any content placeholders contained in thetarget template according to a mapping selected from the one or morecontent mappings.
 13. A method of mapping content from a startingtemplate to a target template, comprising: analyzing the startingtemplate to determine whether any content objects are contained in thestarting template and to determine any properties associated with theany content objects; analyzing the target template to determine whetherany content placeholders are contained in the target template and todetermine properties associated with the any content placeholders;generating one or more content mappings from the starting template tothe target template for mapping the any content objects contained in thestarting template to the any content placeholders contained in thetarget template; and mapping the any content objects contained in thestarting template to the any content placeholders contained in thetarget template according to a mapping selected from the one or morecontent mappings.
 14. The method of claim 13, whereby generating one ormore content mappings from the starting template to the target templatefor mapping the any content objects contained in the starting templateto the any content placeholders contained in the target templateincludes generating one or more content mappings such that propertiesassociated with the any content objects in the starting template arematched to like properties associated with the any content placeholdersso that the one or more mappings maps the any content objects containedin the starting template to the any content placeholders contained inthe target template in a manner that most closely approximates themanner in which the any content objects are contained in the startingtemplate.
 15. The method of claim 14, wherein generating one or morecontent mappings from the starting template to the target template formapping the any content objects contained in the starting template tothe any content placeholders contained in the target template includesgenerating one or more content mappings such that properties associatedwith the any content objects in the starting template are matched tolike properties associated with the any content placeholders includes:generating one or more content mappings from the starting template tothe target template for mapping the any content objects contained in thestarting template to the any content placeholders contained in thetarget template, wherein each of the one or more content mappings isgenerated based on matching properties of the any content objects toproperties of the any content placeholders and based on maintainingphysical and contextual relationships between content objects in thestarting template after the content objects are mapped to the anycontent placeholders in the target template
 16. The method of claim 15,prior to mapping the any content objects contained in the startingtemplate to the any content placeholders contained in the startingtemplate, further comprising, determining which mapping of the one ormore mappings is an optimal mapping for mapping the any content objectscontained in the starting template to the any content placeholderscontained in the target template; and selecting the optimal mapping fromthe one or more content mappings.
 17. The method of claim 16, wherebydetermining which mapping of the one or more mappings is an optimalmapping includes determining which mapping of the one or more mappingsmaps the any content objects contained in the starting template to theany content placeholders contained in the target template in a mannerthat most closely approximates the manner in which the any contentobjects are contained in the starting template.
 18. The method of claim13, further comprising storing any content objects not mapped to thetarget template; and providing a user interface for manually insertingthe any content objects not mapped to the target template into thetarget template.
 19. The method of claim 13, further comprisingdisplaying the target template after mapping the any content objectscontained in the starting template to the any content placeholderscontained in the target template according to a mapping selected fromthe one or more content mappings.
 20. A computer-readable mediumcontaining computer-executable instructions which when executed by acomputer perform a method of mapping content from a starting template toa target template, comprising: analyzing the starting template todetermine whether any content objects are contained in the startingtemplate and to determine any properties associated with the any contentobjects; analyzing the target template to determine whether any contentplaceholders are contained in the target template and to determineproperties associated with the any content placeholders; generating oneor more content mappings from the starting template to the targettemplate for mapping the any content objects contained in the startingtemplate to the any content placeholders contained in the targettemplate; and mapping the any content objects contained in the startingtemplate to the any content placeholders contained in the targettemplate according to a mapping selected from the one or more contentmappings.
 21. The method of claim 20, whereby generating one or morecontent mappings from the starting template to the target template formapping the any content objects contained in the starting template tothe any content placeholders contained in the target template includesgenerating one or more content mappings such that properties associatedwith the any content objects in the starting template are matched tolike properties associated with the any content placeholders so that theone or more mappings maps the any content objects contained in thestarting template to the any content placeholders contained in thetarget template in a manner that most closely approximates the manner inwhich the any content objects are contained in the starting template.